package model.criterio.criteriosYbusqueda;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import model.Publicacion.Pregunta;
import model.criterio.criterioOrden.CriterioOrden;


public class BusquedaDePreguntas
{

	private List<Pregunta> preguntas;
	private List<Criterio> criterios;
	
	public BusquedaDePreguntas(List<Pregunta> preguntas, List<Criterio> criterios){
		this.preguntas=preguntas;
		this.criterios=criterios;
	}

	public List<Pregunta> buscarPreguntasConCriterios() {
		
		List<Pregunta> pregs=new ArrayList<Pregunta>();
		for(Pregunta p:preguntas)
		{
			if(cumpleConCriterios(p))
			{
				pregs.add(p);
			}
		}
		return pregs;
	}

	public boolean cumpleConCriterios(Pregunta pregunta) {
		boolean cumple=true;
		for(Criterio c:criterios)
		{
			if(c.seCumple(pregunta))
			{
				cumple=cumple &&true;
			}
			else{
				cumple=cumple && false;
			}
		}
		return cumple;	
	}
	public List<Pregunta> buscarPreguntasConCriteriosYorden(CriterioOrden ordenc)
	{
		List<Pregunta> lista=buscarPreguntasConCriterios();
		Collections.sort(lista, ordenc);
		return lista;
	}
	public void agregarPregunta(Pregunta p)
	{
		preguntas.add(p);
	}

	public int getCantCriterios() {
		
		return criterios.size();
	}

	public List<Pregunta> getPreguntas() {
		return preguntas;
	}
	
}

